1. Field of Invention
The invention relates to a system and method for detecting electromotive force and, more particularly, to a system and method for detecting back electromotive force voltage in electric motors, such as disk drives, with an automatic pole calibration which can be used to sense the rotational speed of the motor or, in a disk drive, the speed of the media rotated by the motor.
2. Related Art
Motors used in disk drives, such as spindle motors, can be three phase motors which include a rotor having permanent magnets and a stator having windings for the three phases. Electrical current is passed through the windings to induce a magnetic field that interacts with the magnets or poles on the rotor, and causes the rotor to turn. Typically, at any particular time, two phases of the windings are driven, while the third phase is not driven. In disk drives, the rotor operates to turn a data media, such as a computer readable media, at high revolutions per minute (RPM). For proper operation of the disk drive, it is important to accurately sense the RPM of the media.
In the winding that is not powered, a back electromotive force (“BEMF”) voltage having a sinusoidal waveform is generated by the magnets in the rotor. Specifically, as the permanent magnets pass by the windings, a current is induced in the winding. It may be desirable to detect the BEMF voltage to determine when the magnets of the rotor pass by the winding. Since the distance between the poles is known, the rotational speed of the rotor may be sensed from the BEMF detection.
The BEMF voltage (also referred to herein as “BEMF voltage event” or BEMF event”) is generated as an output of a comparator that compares the voltage at the centre tap (CT) of the motor and the voltage at one of the driving phases (e.g., phase A, B or C). By way of example, if the current is in a trapezoidal profile, the BEMF may be detected using one phase or three phases in one electrical cycle. If the current is in a sinusoidal profile, the BEMF may be detected using one phase, such as phase A. A schematic of the motor circuitry is shown in FIG. 1. The frequency of the signal generated based on the BEMF event is used to inform a hard disk controller, which can be implemented as a system on chip (“SOC”), of the rotational speed of the rotor and thus a disk or media rotated by the motor. Either the SOC or another component, such as a processor, may use this frequency to determine the rotational speed.
In order to detect this signal accurately and best reflect the RPM of the media, a freeze signal is generated before the BEMF event occurs. The freeze signal pulls the driving phase high to allow the BEMF event to be more easily detected without any switching noise in the associated motor circuitry. Components associated with one or more windings, such as the motor drivers, are pulled to a high voltage value to reduce or eliminate noise. Once the BEMF arrives, the freeze signal is released and the whole system will synchronize itself for the next BEMF.
Conventionally, a freeze signal has been generated using a forecast method. Based on the time of detection of the previous BEMF event, the system determines or estimates when the next BEMF event will occur. With this estimate, a window for the freeze signal is opened prior to the estimated occurrence of the BEMF event. This freeze signal is generated at a time based on a freeze register setting, such as at a serial port.
FIG. 2 is a waveform diagram of a back electromotive force signal and a freeze signal according to a theoretical implementation of a detection system using the known forecast method. BEMF signal 201 and freeze signal 203 are compared in a time-wise fashion in FIG. 2. At time 202, the freeze signal is raised to high in anticipation of the BEMF voltage event, that is, when the BEMF signal moves to high. As described above, time 202 is determined based on an estimate of when the BEMF voltage event will occur using the previous occurrence of a BEMF event.
The BEMF voltage event occurs at time 204. The freeze signal is also turned off, or brought to low, at time 204. Based on the time 204, the freeze signal 203 moves to high at time 206. The timing of time 206 is based on the occurrence of the BEMF voltage event at time 204, as well as a register setting indicating a timing for generating the freeze signal 203. The BEMF voltage event occurs at time 208, while the freeze signal is also turned off.
This method of BEMF detection suffers from a number of deficiencies. One problem is that during the time period when the freeze signal is generated, the supply current will spike due to the freeze signal pulling the driver(s) to a high voltage level. This spiking will contribute to power consumption as well as noise in the chip. The longer the freeze signal is at high, the longer the spike and the more power consumed.
A further problem with this method arises because the poles for the motor that rotates the media may be unequally spaced apart from each other. This results in some differences between the expected position and the actual position of different poles. As the freeze register setting remains unchanged during the rotation, this difference in position will then translate into a longer or shorter time for the freeze signal to be at high. The freeze signal will be high based on the previous BEMF event, and will not change to a low voltage level until the BEMF event occurs, which may be earlier or later than initially estimated.
FIG. 3 is a waveform diagram of a back electromotive force signal and a freeze signal implementing the known forecast methods in a motor having unequally spaced poles. BEMF signal 301 and freeze signal 303 are compared in a time-wise fashion. At time 302, the freeze signal is generated in anticipation of the BEMF voltage event based on the previous BEMF event, that is, when the BEMF signal 301 moves to high. As described above, time 302 is determined based on an estimate of when the BEMF voltage event will occur.
The first BEMF voltage event occurs at time 304. The freeze signal is also turned off, or brought to low, at time 304. Based on this end time for the BEMF voltage event, the freeze signal 303 is generated at time 306. The timing of time 306 is based on the occurrence of the BEMF voltage event at time 304, as well as a register setting.
After the freeze signal is generated at time 306, the second BEMF voltage event occurs at time 308. The freeze signal is also turned off, or brought to low, at time 308. Again, based on the BEMF occurrence at time 308, the freeze signal 303 is generated at time 310. The timing of time 310 is based on the occurrence of the second BEMF voltage event at time 308, as well as a register setting. However, the third BEMF voltage event in this example does not occur until time 312 due to the pole arriving later than expected, at which time the freeze signal 303 is dropped to low. As the time (t3) between the beginning of one BEMF event and the beginning of the next BEMF event (time 308 to time 312) is greater than the previous time (t1) between the beginning of one BEMF event and the beginning of the next BEMF event (time 304 to time 308), the freeze signal may be left at high for a longer period of time (t4) (time 310 to time 312) than the time (t2) for the freeze signal from the previous BEMF event (time 306 to time 308).
Based on the BEMF occurrence at time 312, the freeze signal 303 is generated at time 314. However, in this example, the fourth BEMF voltage event occurs at time 316, at which point the freeze signal 303 is dropped low. As the time (t5) between one BEMF event and another BEMF event (time 312 to time 316) is shorter than a previous time (t1) between one BEMF event and the next BEMF event (time 304 to time 308), the freeze signal may be left at high for a shorter period of time (t6) (time 314 to time 316) than either the previous two time intervals (t2, t4).
As described previously, a freeze signal that is too long may result in a current surge in the power supply, thereby draining the power supply. Further, a surge in current can cause the motor to accelerate, thereby increasing the speed of rotation. This can be problematic for some applications where the speed of the motor needs to be kept relatively constant, such as in disk drives. Further, when the durations of the freeze signals vary, the calculation of the location and speed of the motor varies. This may disrupt the proper use and/or functioning of the motor, which may require very precise operation, such as when used to rotate the data media in a disk drive.
Accordingly, there is a need for an improved BEMF detection system and method that minimizes or eliminates the drawbacks and disadvantages in prior BEMF detection schemes, and provides for more reliable operation accounting for unequal pole spacing.